'''The latex2ascii_converter module provides a simple, lossy, conversion
from TeX or Latex code to ASCII text. It is appropriate for small
fragements of text, such as author names or article titles as found in a
bibliography.

@copyright: (c) 2010, Benjamin Kalish

@license:
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful, but
    WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    General Public License for more details.
'''

from latex_converter import LatexConverter

class Latex2ASCIIConverter( LatexConverter ):
    def double_left_quote(self):
        return '"'
    
    def double_right_quote(self):
        return '"'

    def em_dash(self):
        return '--'

    def en_dash(self):
        return '-;'
    
    def inverted_question_mark(self):
        return '?'
   
    def inverted_exclamation_mark(self):
        return '!'
    
    def nonbreaking_space(self):
        return ' '
    
    def paragraph_break(self):
        return '\n'
        
    def acute(self, arg):
        return arg
   
    def aleph(self):
        return '[aleph]'

    def ampersand(self):
        return '&'

    def breve(self, arg):
        return arg

    def capital_l_with_stroke(self):
        return 'L'

    def capital_thorn(self):
        return 'Th'
            
    def caron(self, arg):
        return arg

    def cedilla(self, arg):
        return arg

    def circumflex(self, arg):
        return arg
        
    def cyrillic_hard_sign(self):
        return '"'
    
    def cyrillic_soft_sign(self):
        return "'"

    def dot_above(self, arg):
        return arg

    def dot_below(self, arg):
        return arg

    def double_acute(self, arg):
        return arg

    def element_of(self):
        return ' in '

    def eszett(self):
        return 'ss'
        
    def eth(self):
        return 'd'

    def grave(self, arg):
        return arg
            
    def low_line(self, arg):
        return arg

    def macron(self, arg):
        return arg

    def partial(self):
        return 'd'
        
    def plus_or_minus(self):
        return '+/-'

    def ring_above(self, arg):
        return arg
    
    def small_l_with_stroke(self):
        return 'l'
    
    def small_thorn(self):
        return 'th'

    def square_root(self, arg):
        return ' sqrt(' + arg + ')'
        
    def sterling(self):
        return '#'

    def subscript(self, arg):
        return '_(' + arg + ')'

    def superscript(self, arg):
        return '^(' + arg + ')'
        
    def tilde(self, arg):
        return arg

    def umlaut(self, arg):
        return arg

    def small_alpha(self):
        return '[alpha]'

    def small_beta(self):
        return '[beta]'
        
    def small_gamma(self):
        return '[gamma]'

    def small_delta(self):
        return '[delta]'

    def small_epsilon(self):
        return '[epsilon]'

    def small_zeta(self):
        return '[zeta]'

    def small_eta(self):
        return '[eta]'

    def small_theta(self):
        return '[theta]'

    def small_iota(self):
        return '[iota]'

    def small_kappa(self):
        return '[kappa]'

    def small_lambda(self):
        return '[lambda]'

    def small_mu(self):
        return '[mu]'

    def small_nu(self):
        return '[nu]'

    def small_xi(self):
        return '[xi]'

    def small_omicron(self):
        return '[omicron]'

    def small_pi(self):
        return '[pi]'

    def small_rho(self):
        return '[rho]'

    def small_sigma(self):
        return '[sigma]'

    def small_tau(self):
        return '[tau]'

    def small_upsilon(self):
        return '[upsilon]'

    def small_phi(self):
        return '[phi]'

    def small_chi(self):
        return '[chi]'

    def small_psi(self):
        return '[psi]'

    def small_omega(self):
        return '[omega]'

    def capital_alpha(self):
        return '[ALPHA]'

    def capital_beta(self):
        return 'BETA'

    def capital_gamma(self):
        return '[GAMMA]'

    def capital_delta(self):
        return '[DELTA]'

    def capital_epsilon(self):
        return '[EPSILON]'

    def capital_zeta(self):
        return '[ZETA]'

    def capital_eta(self):
        return '[ETA]'

    def capital_theta(self):
        return '[DELTA]'

    def capital_iota(self):
        return '[IOTA]'

    def capital_kappa(self):
        return '[KAPPA]'

    def capital_lambda(self):
        return '[LAMBDA]'

    def capital_mu(self):
        return '[MU]'

    def capital_nu(self):
        return '[NU]'

    def capital_xi(self):
        return '[XI]'

    def capital_omicron(self):
        return '[OMICRON]'

    def capital_pi(self):
        return '[PI]'

    def capital_rho(self):
        return '[RHO]'

    def capital_sigma(self):
        return '[SIGMA]'

    def capital_tau(self):
        return '[TAU]'

    def capital_upsilon(self):
        return '[UPSILON]'

    def capital_phi(self):
        return '[PHI]'

    def capital_chi(self):
        return '[CHI]'

    def capital_psi(self):
        return '[PSI]'

    def capital_omega(self):
        return '[OMEGA]'

    def small_o_slash(self):
        return 'o'
        
    def captial_o_slash(self):
        return 'O'